package com.yunxin.core.customer.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunxin.core.admin.domain.AdminUser;
import com.yunxin.core.application.dto.user.SysUser;
import com.yunxin.core.customer.domain.CustomerInfo;
import com.yunxin.core.customer.domain.CustomerInfoDetail;
import com.yunxin.core.customer.domain.CustomerMatchingProduct;
import com.yunxin.core.domain.model.product.ProductInfo;
import com.yunxin.core.domain.model.team.Team;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class CustomerInfoVo implements Serializable {

    @Schema(description = "客户id")
    private Integer customerId;

    @Schema(description = "客户编号")
    private String customerNo;

    @Schema(description = "腰带申请订单号")
    private String applyOrderNo;

    @Schema(description ="企微客户id")
    private Integer wechatCustomerId;

    @Schema(description = "姓名")
    private String name;

    @Schema(description = "手机号")
    private String phone;

    @Schema(description = "产品id")
    private Long productId;

    @Schema(description = "产品名称")
    private String productName;

    @Schema(description = "申请时间(最初)")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date applyTime;

    @Schema(description = "团队id")
    private Integer teamId;

    @Schema(description = "团队名称")
    private String teamName;

    @Schema(description = "客户状态 0未处理 1已处理")
    private Integer status;

    @Schema(description = "业务员分配时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date salesmanTime;

    @Schema(description = "微信昵称")
    private String wechatName;

    @Schema(description = "业务员id")
    private Integer salesmanId;

    @Schema(description = "业务员名称")
    private String salesmanName;

    @Schema(description = "业务员外呼进度 0未外呼 1已外呼")
    private Integer salesmanStatus;

    @Schema(description = "话务员id")
    private Integer telephoneId;

    @Schema(description = "话务员名称")
    private String telephoneName;

    @Schema(description = "话务员分配时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date telephonerTime;

    @Schema(description = "拨打次数")
    private Integer callCount;

    @Schema(description = "话务员跟进进度 0未跟进 11不需要 12秒挂 13非本人申请 14点着玩 21空号 22停机 3已添加 -11通话中 -12拒接 -13响铃挂 -14用户忙 ")
    private Integer telephonerStatus;

    @Schema(description = "话务员转交业务员时间")
    private Date telephonerToTime;

    @Schema(description = "客户详情")
    private CustomerInfoDetail customerInfoDetail;

    @Schema(description = "分配产品情况")
    private List<CustomerMatchingProduct> customerMatchingProducts;

    @Schema(description = "业务员客户来源类型（个人 客服）")
    private String salesmanSourceType;

    @Schema(description = "成单时间")
    private Date createOrderTime;

    @Schema(description = "系统标签集合")
    private List<String> sysTags;

    @Schema(description = "企微标签集合")
    private List<String> wechatTags;

    @Schema(description = "业务员跟进进度 0未跟进 1已跟进")
    private Integer followStatus;

    @Schema(description = "成单时间")
    private Date makeOrderTime;

    @Schema(description = "是否添加微信 0未添加 1已添加")
    private Integer isWechat;

    @Schema(description = "分配次数")
    private Integer allotCount;

    @Schema(description = "产品对接方式  1.自营 2.h5 3.API 4.企业微信 5微信公众号 6cps")
    private Integer abutmentType;

    @Schema(description = "分配公海池时间")
    private Date seasDate;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
